from netfilterqueue import NetfilterQueue

import sys

from flow_correctness import *

fw = Firewall()
packet_correctness_fw = FlowCorrectness(fw, 1110, 'FW-F')

_pkt = b'E\x00\x00^\x00\x01\x00\x00@\x06G\x06\xac\x11\x00\x02$\x91b\xef\x1f@M\xf1\x00\x00\x00\x00\x00\x00\x00\x00P' \
       b'\x02 \x00\xf8\x0f\x00\x00abcdefffffffffffffff\x00\x00\x00\x01\x00\x00\x00\x0b\x00\x00\x04V\x00\x01\x00\x00' \
       b'\x00\x00=\x83_\xd4\x19\xd0u\xb9\xcb[\xea([\xcf\xb3\x06 '


def print_and_accept(pkt):
    out_pkt = flow_correctness_ids.process(_pkt)  # NAT
    pkt.set_payload(out_pkt)
    pkt.accept()


queue = NetfilterQueue()
queue.bind(1, print_and_accept, max_len=8192)
try:
    queue.run()
except KeyboardInterrupt:
    queue.unbind()
